package com.zelix;

import java.io.IOException;
import java.util.*;

// Referenced classes of package com.zelix:
//            kt, nc, tg, fh, 
//            wb, bc, dc, dp, 
//            ep, n5, js, ot, 
//            mu, lx, sx, qb, 
//            jy, is, jb

public abstract class lt extends kt
        implements Comparable {

    private Vector k;
    int l;
    int m;
    ot n;
    js o;
    js p;
    int q;
    int r;
    int s;
    int t;
    js u[];
    String v;
    String w;
    private final byte x[];
    public static boolean y;
    private static String z[];

    static {
        z = new String[13];
        z[0] = "java/lang/Object";
        z[1] = "(4c)";
        z[2] = "(2)";
        z[3] = "(3)";
        z[4] = "Loop:";
        z[5] = "null";
        z[6] = " (C)";
        z[7] = "Invalid Constant Pool index";
        z[8] = " (B)";
        z[9] = " (A)";
        z[10] = ":";
        z[11] = "' is not a valid class file : '";
        z[12] = "' is an incompatible version.:";
    }

    lt(nc nc1, byte abyte0[]) {
        super(null);
        k = new Vector(1);
        k.addElement(nc1);
        x = abyte0;
    }

    public void a(nc nc1) {
        k.addElement(nc1);
    }

    public int compareTo(Object obj) {
        lt lt1 = (lt) obj;
        return v().compareTo(lt1.v());
    }

    public static String a(String s1) {
        return s1.replace('/', '.');
    }

    public static String b(String s1) {
        return s1.replace('.', '/');
    }

    public final int a() {
        return n.a();
    }

    public static String c(String s1) {
        String s3;
        label0:
        {
            int i1 = s1.lastIndexOf("[") + 1;
            String s2 = s1.substring(i1);
            boolean flag = i1 > 0 && s2.length() == 1;
            if (flag)
                return null;
            if (s2.startsWith("L") && s2.endsWith(";")) {
                s3 = s2.substring(1, s2.length() - 1);
                if (kt.i == 0)
                    break label0;
            }
            s3 = s2;
        }
        return b(s3);
    }

    public static String d(String s1) {
        return a(s1, ((sx) (null)));
    }

    public static String a(String s1, sx sx1) {
        int i1 = s1.lastIndexOf("[") + 1;
        if (sx1 != null)
            sx1.a(i1);
        String s2 = s1.substring(i1);
        boolean flag = i1 > 0 && s2.length() == 1;
        if (flag)
            return null;
        if (s2.startsWith("L") && s2.endsWith(";")) {
            String s3 = s2.substring(1, s2.length() - 1);
            return b(s3);
        } else {
            return null;
        }
    }

    public Enumeration q() {
        return k.elements();
    }

    public String i() {
        return ((nc) k.elementAt(0)).d();
    }

    public final String j() {
        return v;
    }

    public final Hashtable a(ep ep1)
            throws qb, bc {
        String s1;
        Hashtable hashtable;
        Vector vector;
        int i1;
        int l1;
        label0:
        {
            l1 = kt.i;
            s1 = j();
            if (!s1.equals(z[0])) {
                String s2 = z();
                Hashtable hashtable2 = ep1.a(s2, s1);
                hashtable = (Hashtable) hashtable2.clone();
                if (l1 == 0)
                    break label0;
            }
            hashtable = new Hashtable();
        }
        vector = new Vector();
        i1 = 0;
        if (l1 == 0)goto _L2;else goto _L1
        _L1:
        String s3 = b(i1);
        Hashtable hashtable3 = ep1.a(s3, s1);
        vector.addElement(hashtable3);
        i1++;
        _L2:
        if (i1 < q)goto _L1;else goto _L3
        _L3:
        int j1 = 0;
        if (l1 == 0)goto _L5;else goto _L4
        _L4:
        Hashtable hashtable4;
        Enumeration enumeration;
        hashtable4 = (Hashtable) vector.elementAt(j1);
        enumeration = hashtable4.keys();
        if (l1 == 0)goto _L7;else goto _L6
        _L6:
        dp dp1 = (dp) enumeration.nextElement();
        lt lt1 = (lt) hashtable4.get(dp1);
        String s4 = lt1.j();
        if (s4.equals(z[0]))
            continue; /* Loop/switch isn't completed */
        lt lt2 = ep1.a(s4, dp1);
        if (lt2 != null && lt2 != lt1) {
            lt1 = lt2;
            s4 = lt2.j();
        }
        if (lt1 == this)
            continue; /* Loop/switch isn't completed */
        lt lt3 = (lt) hashtable.put(dp1, lt1);
        if (lt3 == null || lt1 == lt3)
            continue; /* Loop/switch isn't completed */
        fh fh1 = fh.b(s4);
        fh fh2 = fh.b(lt3.j());
        if (fh2 == null || !fh2.w()) {
            if (fh1 == null || !fh1.w())
                continue; /* Loop/switch isn't completed */
            a(ep1, lt1, dp1, lt3, z[2]);
            hashtable.put(dp1, lt3);
            if (l1 == 0)
                continue; /* Loop/switch isn't completed */
        }
        if (fh1 == null || !fh1.w()) {
            a(ep1, lt3, dp1, lt1, z[3]);
            if (l1 == 0)
                continue; /* Loop/switch isn't completed */
        }
        a(ep1, lt3, dp1, lt1, z[1]);
        _L7:
        if (enumeration.hasMoreElements())goto _L6;else goto _L8
        _L8:
        j1++;
        _L5:
        if (j1 < vector.size())goto _L4;else goto _L9
        _L9:
        Hashtable hashtable1;
        mu amu[];
        int k1;
        hashtable1 = (Hashtable) hashtable.clone();
        amu = w();
        k1 = 0;
        if (l1 == 0)goto _L11;else goto _L10
        _L10:
        amu[k1].a(ep1, hashtable1, F(), this);
        k1++;
        _L11:
        if (k1 >= s) {
            ep1.a(s1, hashtable);
            ep1.b(s1, hashtable1);
            return hashtable1;
        }
        if (true)goto _L10;else goto _L12
        _L12:
    }

    public byte[] r() {
        return x;
    }

    public final String l() {
        return v.replace('/', '.');
    }

    public nc s() {
        if (k == null || k.size() == 0)
            return null;
        else
            return (nc) k.elementAt(0);
    }

    public int t() {
        return q;
    }

    public String b(int i1) {
        return u[i1].b();
    }

    public final String[] u() {
        int j1 = kt.i;
        if (u != null)goto _L2;else goto _L1
        _L1:
        String as[] = new String[0];
        if (j1 == 0)goto _L3;else goto _L2
        _L2:
        int i1;
        as = new String[u.length];
        i1 = 0;
        if (j1 == 0)goto _L5;else goto _L4
        _L4:
        as[i1] = u[i1].b();
        i1++;
        _L5:
        if (i1 < u.length)goto _L4;else goto _L3
        _L3:
        return as;
    }

    public String v() {
        return w;
    }

    public final mu a(dp dp1) {
        mu amu[];
        int i1;
        int j1;
        j1 = kt.i;
        amu = w();
        i1 = 0;
        if (j1 == 0)goto _L2;else goto _L1
        _L1:
        if (amu[i1].O().equals(dp1))
            return amu[i1];
        i1++;
        _L2:
        if (i1 >= amu.length)
            return null;
        if (true)goto _L1;else goto _L3
        _L3:
    }

    public final mu[] a(n5 n5_1) {
        mu amu[];
        ArrayList arraylist;
        int i1;
        int j1;
        j1 = kt.i;
        amu = w();
        arraylist = new ArrayList();
        i1 = 0;
        if (j1 == 0)goto _L2;else goto _L1
        _L1:
        if (amu[i1].b().equals(n5_1))
            arraylist.add(amu[i1]);
        i1++;
        _L2:
        if (i1 >= amu.length)
            if (arraylist.size() == 0) {
                return null;
            } else {
                mu amu1[] = new mu[arraylist.size()];
                return (mu[]) arraylist.toArray(amu1);
            }
        if (true)goto _L1;else goto _L3
        _L3:
    }

    public abstract mu[] w();

    public ArrayList e(String s1) {
        ArrayList arraylist;
        mu amu[];
        int i1;
        int j1;
        j1 = kt.i;
        arraylist = new ArrayList();
        amu = w();
        i1 = 0;
        if (j1 == 0)goto _L2;else goto _L1
        _L1:
        if (amu[i1].w().equals(s1))
            arraylist.add(amu[i1]);
        i1++;
        _L2:
        if (i1 >= amu.length)
            return arraylist;
        if (true)goto _L1;else goto _L3
        _L3:
    }

    public final String x() {
        return n.q();
    }

    public String y() {
        String s1 = j();
        int i1 = s1.lastIndexOf('/');
        if (i1 == -1)
            return "";
        else
            return s1.substring(0, i1).replace('/', '.');
    }

    public String m() {
        String s1 = j();
        int i1 = s1.lastIndexOf('/');
        if (i1 == -1)
            return "";
        else
            return s1.substring(0, i1);
    }

    public static String f(String s1) {
        int i1 = s1.lastIndexOf('/');
        if (i1 == -1)
            return "";
        else
            return s1.substring(0, i1);
    }

    public abstract is a(int i1);

    public String o() {
        String s1 = j();
        int i1 = s1.lastIndexOf('/');
        if (i1 == -1)
            return s1;
        else
            return s1.substring(i1 + 1);
    }

    public static String g(String s1) {
        String s2;
        label0:
        {
            int l1 = kt.i;
            int i1 = s1.lastIndexOf("$");
            int j1 = s1.lastIndexOf("+");
            int k1 = Math.max(i1, j1);
            if (k1 == s1.length() - 1) {
                s2 = s1;
                if (l1 == 0)
                    break label0;
            }
            if (k1 > -1) {
                s2 = s1.substring(k1 + 1);
                if (l1 == 0)
                    break label0;
            }
            s2 = s1;
        }
        return s2;
    }

    public String z() {
        if (p != null)
            return p.b();
        else
            return null;
    }

    public js A() {
        return o;
    }

    public final String B() {
        int i1 = v.lastIndexOf("/");
        if (i1 > 0)
            return v.substring(i1 + 1);
        else
            return v;
    }

    public static String h(String s1) {
        String s2;
        label0:
        {
            int i1 = s1.lastIndexOf("/");
            if (i1 > -1) {
                s2 = s1.substring(i1 + 1);
                if (kt.i == 0)
                    break label0;
            }
            s2 = s1;
        }
        return s2;
    }

    public jy a(tg tg1)
            throws wb {
        HashSet hashset = new HashSet();
        hashset.add(this);
        return a(hashset, tg1);
    }

    private jy a(HashSet hashset, tg tg1)
            throws wb {
        jy jy1;
        int i1;
        int k2;
        k2 = kt.i;
        jy1 = new jy();
        i1 = 0;
        if (k2 == 0)goto _L2;else goto _L1
        _L1:
        String s1 = u[i1].b();
        jy1.put(s1, s1);
        i1++;
        _L2:
        if (i1 < q)goto _L1;else goto _L3
        _L3:
        int j1;
        int k1;
        j1 = 0;
        k1 = jy1.size();
        if (k2 == 0)goto _L5;else goto _L4
        _L4:
        int l1 = j1;
        if (k2 == 0)goto _L7;else goto _L6
        _L6:
        String as[];
        int j2;
        String s3 = (String) jy1.a(l1);
        lt lt2 = tg1.a(s3);
        if (!hashset.add(lt2))
            continue; /* Loop/switch isn't completed */
        as = lt2.u();
        j2 = 0;
        if (k2 == 0)goto _L9;else goto _L8
        _L8:
        jy1.put(as[j2], as[j2]);
        j2++;
        _L9:
        if (j2 < as.length)goto _L8;else goto _L10
        _L10:
        l1++;
        _L7:
        if (l1 < k1)goto _L6;else goto _L11
        _L11:
        j1 = k1;
        k1 = jy1.size();
        _L5:
        if (j1 < k1)goto _L4;else goto _L12
        _L12:
        String s2 = z();
        if (s2 == null)goto _L14;else goto _L13
        _L13:
        lt lt1 = tg1.a(s2);
        if (!hashset.add(lt1))goto _L14;else goto _L15
        _L15:
        jy jy2;
        int i2;
        jy2 = lt1.a(hashset, tg1);
        i2 = 0;
        if (k2 == 0)goto _L17;else goto _L16
        _L16:
        String s4 = (String) jy2.a(i2);
        jy1.put(s4, s4);
        i2++;
        _L17:
        if (i2 < jy2.size())goto _L16;else goto _L14
        _L14:
        return jy1;
    }

    public final boolean C() {
        return n.r();
    }

    public final boolean a() {
        return n.a();
    }

    public final boolean D() {
        return n.s();
    }

    public final boolean E() {
        return n.t();
    }

    public final boolean F() {
        fh fh1 = fh.b(j());
        return fh1 != null && fh1.w();
    }

    public boolean b() {
        return l >= 49;
    }

    public boolean c() {
        return false;
    }

    public final boolean G() {
        return n.z();
    }

    public final void c(boolean flag) {
        n.a(flag);
    }

    public Vector b(tg tg1)
            throws wb {
        Vector vector;
        String s1;
        int k1;
        k1 = kt.i;
        vector = new Vector();
        s1 = z();
        if (s1 == null)goto _L2;else goto _L1
        _L1:
        int i1;
        int j1;
        vector.addElement(s1);
        i1 = 0;
        j1 = -1;
        if (k1 == 0)goto _L4;else goto _L3
        _L3:
        j1 = i1;
        String s2 = (String) vector.elementAt(i1);
        lt lt1 = tg1.a(s2);
        String s3 = lt1.z();
        if (s3 != null) {
            vector.addElement(s3);
            i1++;
        }
        _L4:
        if (i1 > j1)goto _L3;else goto _L2
        _L2:
        return vector;
    }

    private void a(ep ep1, lt lt1, dp dp1, lt lt2, String s1) {
        lt lt3;
        int i1;
        i1 = kt.i;
        if (lt1 == lt2)
            return;
        String s2 = lt1.j();
        ep1.b(s2, dp1, lt2);
        lt3 = (lt) ep1.a(s2, dp1, lt2);
        if (!lt2.F() || !lt2.E())goto _L2;else goto _L1
        _L1:
        if (i1 == 0)goto _L4;else goto _L3
        _L3:
        String s3 = lt3.j();
        ep1.b(s3, dp1, lt2);
        lt lt4 = lt3;
        lt3 = (lt) ep1.a(s3, dp1, lt2);
        lx.b(lt3 == null || lt3 != lt4, z[4] + lt1.l() + " " + (lt3 == null ? z[5] : lt3.l()));
        _L4:
        if (lt3 != null && lt3 != lt2 && lt3.F() && lt3.E())goto _L3;else goto _L2
        _L2:
    }

    void a(int i1, int j1, int ai[])
            throws dc {
        int k1;
        int l1;
        l1 = kt.i;
        is is = a(i1);
        if (!(is instanceof js))
            throw new dc(String.valueOf((nc) k.elementAt(0)) + z[10] + z[7] + z[9]);
        o = (js) is;
        v = o.b();
        w = v.toLowerCase();
        is is1 = a(j1);
        if (!(is1 instanceof js)) {
            if (!j().equals(z[0]))
                throw new dc(j() + z[10] + z[7] + z[8]);
        } else {
            p = (js) is1;
        }
        u = new js[ai.length];
        k1 = 0;
        if (l1 == 0)goto _L2;else goto _L1
        _L1:
        is is2 = a(ai[k1]);
        if (!(is2 instanceof js))
            throw new dc(j() + z[10] + z[7] + z[6]);
        u[k1] = (js) is2;
        k1++;
        _L2:
        if (k1 >= q)
            return;
        if (true)goto _L1;else goto _L3
        _L3:
    }

    void a(jb jb)
            throws dc, IOException {
        int i1 = jb.readInt();
        if (i1 != 0xcafebabe)
            throw new dc("'" + s() + z[11] + Integer.toHexString(i1) + "'");
        m = jb.readUnsignedShort();
        l = jb.readUnsignedShort();
        if (l < 45 || l == 45 && m < 3)
            throw new dc("'" + s() + z[12] + l + "." + m);
        else
            return;
    }
}